/*
 * Huawei HiNIC PCI Express Linux driver
 * Copyright(c) 2017 Huawei Technologies Co., Ltd
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms and conditions of the GNU General Public License,
 * version 2, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * for more details.
 *
 */

#ifndef HISEC_CFG_H
#define HISEC_CFG_H

#include "hinic3_cqm.h"
#include "hisec_cmd.h"

/* *
 * @brief hisec_reg_cqm_service - Register Context and Queue Management service
 * @param hwdev: device pointer to hwdev
 * @param reg_temp: app register cqm service template
 * @retval zero: success
 * @retval non-zero: failure
 */
int hisec_reg_cqm_service(void *hwdev, service_register_template_s *reg_temp);

/* *
 * @brief hisec_unreg_cqm_service - Unregister Context and Queue Management service
 * @param hwdev: device pointer to hwdev
 * @param service_type: app identify
 * @retval NULL
 */
void hisec_unreg_cqm_service(void *hwdev, u32 service_type);

int hisec_set_ipsec_policy(void *hwdev, hisec_cmd_set_ipsec_sp_s *sp_msg);
int hisec_set_ipsec_sa(void *hwdev, hisec_cmd_set_ipsec_sa_s *sa_msg);
int hisec_flush_ipsec_resource(void *hwdev, u32 flush_flag);

int hisec_set_ipsec_offload_mode(void *hwdev, u8 offload_mode);
int hisec_get_crypto_stats(void *hwdev, struct hisec_crypto_stats *stats);

#endif
